
<!-- 
  原数组
 -->

 <script>
    let sourceArr = [
      {
        id: 1,
        name: '1',
        pid: null
      },
      {
        id: 2,
        name: '2',
        pid: 1
      },
      {
        id: 3,
        name: '3',
        pid: 2,
      }
    ]
      
      function tree(arr){
        const treeArr = []
        const map = {}
        arr.forEach(item=>{
            // console.log(item);
            map[item.id]=item
            map[item.id].children=[]
        })
        console.log(map);
      }
      tree(sourceArr)


      
    // function transTree (arr) {
    //   const treeArr = []
    //   const map = {}
    //   arr.forEach((item) => {
    //     map[item.id] = item
    //     map[item.id].children = []
    //   })
    //   console.log(map)
    //   // 2. 通过pid去匹配id
    //   arr.forEach(item => {
    //     // 隐式转化的问题 找到了 得到了大对象 放到if -> true
    //     if (map[item.pid]) {
    //       // 找到了
    //       map[item.pid].children.push(item)
    //     } else {
    //       // 没找到
    //       treeArr.push(item)
    //     }
    //   })
    //   return treeArr
    // }
    // const newArr = transTree(sourceArr)
    // console.log(newArr);
  </script>